
/****************************************************************
*  COPYRIGHT MorningCore CO.,LTD                               *
*****************************************************************/
/****************************************************************
 * FileName:    PUCCH_Multiplexing.h
 * version:     1.0.0
 * Purpose:     *    This header file should be used for pucch_Multiplexing
 * Authors:     zhangyanqun
 * Notes:       None
 ****************************************************************/

/******************************************************************************
*  HISTORY OF CHANGES
*   <Date>          <Author>        <Version>       <DESCRIPTION>
*  2009-06-15      guohuayong        1.0.0            original
*  2009-06-15      zhangyanan        1.0.1            changed
*  2009-06-15      zhangyanan        1.0.2            deleted warning and  modified mu-mimo
*  2009-06-15      zhangyanan        1.0.3            added fix library function
******************************************************************************/


/*-----------including external files -----------------------------*/

/*-----------external variable declaration-------------------------*/

/*-----------constant and type declaration-------------------------*/

/*-----------macro declaration-------------------------------------*/

/*-----------variable declaration-----------------------------------*/

/*-----------Function or task prototype declaration-----------------*/
#ifndef  _ue_tx_pusch_bit_gen_
#define  _ue_tx_pusch_bit_gen_

#include "../../../../CommLib_FltC/Typedef.h"
#include "../../../../CommLib_FltC/Lib_Arith_f.h"
#include "../../../../CommLib_FltC/MacroDef.h"
#include "../../../../CommLib_FltC/ldpc_cc_f.h"
//#include "../../../../CommLib_FltC/polar_cc_f.h"
#include "../../../../CommLib_FltC/sc_cc_f.h"


void pusch_tx_bitgen(
    IN  stULParamTable       *SimParam,
    OUT int8    BRP_ULSCH_Op[][CW_MAX_LEN],
    OUT UINT8  PUSCH_CwBit[][CW_MAX_LEN], // sch csi1 csi2 ack; cc bit
    OUT int PUSCH_CwLen[][4], // sch csi1 csi2 ack; cc bitlen
    OUT UINT8  PUSCH_TbBit[][CW_MAX_LEN], // sch csi1 csi2 ack; payload bit
    OUT int PUSCH_TbLen[][4] // sch csi1 csi2 ack; payload bitlen
);
void pusch_tx_multiplexing(
    IN  stULParamTable *SimParam,
    IN  UINT8            *BRP_ULHAQR_Op,
    IN  UINT8            *BRP_ULCSI1_Op,
    IN  UINT8            *BRP_ULSCHData_Op,
    OUT int8            BRP_ULSCH_Op[CW_MAX_LEN],
    IN  int              iCw
);

void vFileprintf_arm_polar_para(
    IN char cFileName[256],
    IN stULParamTable    *SimParam,
    IN stPolarParam *pstPolarParam,
    IN stPolarData  *pstPolarData);

void vFileprintf_fpga_polar_para(
    IN char cFileName[256],
    IN  stULParamTable    *SimParam,
    IN stPolarParam *pstPolarParam,
    IN stPolarData  *pstPolarData);


void vFileprintf_intlv_map(
    IN char cFileName[256],
    IN  stULParamTable *SimParam
);
void vFileprintf_polar_para(
    IN char cFileName[256],
    IN  stULParamTable *SimParam
);

#endif